package controle;

import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileFilter;


import abstraction.Cours;

/** controleur appelé lors de l'importation de notes à partir d'un fichier xml
 * 
 * @author PICOSSON
 *
 */
public class ControlJButtonImportNotes implements ActionListener, Observer {

	private Cours modele;
	private Frame parent;
	private JButton button;
	

	public ControlJButtonImportNotes(Frame parent, Cours modele,JButton button) {
		this.modele = modele;
		this.parent = parent;
		this.button=button;
		button.setEnabled(false);
	}
		

	@Override
	public void actionPerformed(ActionEvent e) {
		JFileChooser choixFichier = new JFileChooser(".");
		choixFichier.setFileFilter(new FiltreTexte());

		int reponse = choixFichier.showOpenDialog(parent);

		if (reponse == JFileChooser.APPROVE_OPTION )
			try {
				if (modele.importFile(choixFichier.getSelectedFile()))
					JOptionPane.showMessageDialog(parent, "Importation correcte!", "Succès!",
							JOptionPane.INFORMATION_MESSAGE);
			} catch (Exception e1) {
				JOptionPane.showMessageDialog(parent, "On ne peut pas!", "Erreur!",
						JOptionPane.ERROR_MESSAGE);
			}
	}
	
	public void update(Observable o, Object message) {
		Integer iMessage = (Integer) message;
		if (iMessage == Cours.CHANGEMENT_MODULE_COURANT) {
			if (modele.getModuleCourant() == -1)
				button.setEnabled(false);
			else
				button.setEnabled(true);
		}
	}

}

 class FiltreTexte extends FileFilter {
	public boolean accept(File f) {
		return f.isDirectory() || f.getName().toLowerCase().endsWith(".xml");
	}

	public String getDescription() {
		return "Fichiers XML";
		
		
	
}}
